package com.ruoyi.zhgd.service;

import cn.hutool.core.lang.tree.Tree;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.zhgd.domain.ZjNWarningUsing;
import com.ruoyi.zhgd.domain.vo.ZjNWarningUsingVo;
import com.ruoyi.zhgd.domain.bo.ZjNWarningUsingBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 报警通知短信发送是否启用信息Service接口
 *
 * @author tll
 * @date 2023-11-16
 */
public interface IZjNWarningUsingService {

    /**
     * 查询报警通知短信发送是否启用信息
     */
    ZjNWarningUsingVo queryById(String id);

    /**
     * 查询报警通知短信发送是否启用信息列表
     */
    ZjNWarningUsing queryPageList();

    /**
     * 查询报警通知短信发送是否启用信息列表
     */
    List<ZjNWarningUsingVo> queryList(ZjNWarningUsingBo bo);

    /**
     * 新增报警通知短信发送是否启用信息
     */
    Boolean insertByBo(ZjNWarningUsingBo bo);

    /**
     * 修改报警通知短信发送是否启用信息
     */
    Boolean updateByBo(ZjNWarningUsingBo bo);

    /**
     * 校验并批量删除报警通知短信发送是否启用信息信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    /**
     * 发送短信通知
     * @param receiveAddr 收件人手机号数组
     * @param content 短信内容
     *                推送失败 返1 成功 返0
     */
    int send(List<String> receiveAddr, String content);

    TableDataInfo<ZjNWarningUsingVo> page(PageQuery pageQuery, ZjNWarningUsingBo bo);

    /**
     * 获取部门树列表 业务页面左侧结构树 第一层
     * @param dept
     * @return
     */
    List<Tree<Long>> businessDeptTreeTop(SysDept dept);

    List<ZjNWarningUsingVo> selectByWgroupId(Integer id);

    List<SysDept> getDeptTreeTop(Long deptId);

    List<ZjNWarningUsingVo> selectByygroupId(Integer id);
}
